1. Field of the Invention
The present invention relates to a semiconductor memory device and, more particularly, to a semiconductor memory device having a plurality of writing ports and reading ports.
2. Description of the Related Art
Recently, microprocessors (i.e. arithmetic processing devices, or processors) generally comprise an instruction fetching unit, instruction decoding unit, arithmetic operation executing unit, register file, and the like. Further, these microprocessors have been, for example, designed to execute instructions by pipeline operation.
The conventional microprocessor includes only one arithmetic operation executing unit, and thus the register file comprises a semiconductor memory device (for example, SRAM) having two-read/one-write ports. Such semiconductor memory devices having two-read/one-write ports can effectively carry out three address type arithmetic operations, such as adding instructions.
The microprocessors tend to employ parallel processing architecture, such as VLIW (Very Long Instruction Word) or Superscaler, and the like, to enable higher speed processing. Microprocessors employing such types of architecture include a plurality of arithmetic operation executing units and semiconductor memory devices having a plurality of read/write ports for performing a transfer of data between a plurality of arithmetic operation executing units and semiconductor memory devices (register file).
In general, for n (i.e. number of) arithmetic operation execution units, 2 n reading ports and n writing ports are necessary for the semiconductor memory devices. Note, in order to execute a sub-routine call or so forth, an architecture of a microprocessor having a plurality of local register files has been known. However, such an architecture requires a large number of local register files, since it assigns a specific local register file for each sub-routine. Such a register file is, for example, formed by employing a plurality of two-read ports/one-write port semiconductor memory devices.
On the other hand, in accordance with the progress of semiconductor technology, data processing devices capable of high speed performance have been developed and arithmetic processing devices (microprocessors) that are capable of performing parallel arithmetic operations have been provided. Accordingly, semiconductor memory devices (for example, multi-port SRAM) having a plurality of writing ports and reading ports have been developed. However, these semiconductor memory devices have a large amount of hardware, and they are expensive.